Conversation
fix broken links in docs (UPLOAD-1489)
Fix linting errors from install_tools check
Dependency updates for June '26 (UPLOAD-1653)
display POST records in debug mode for all devices (UPLOAD-1660)
Add support for Prodigy Pocket & Prodigy VOICE meters (UPLOAD-1663)
There was a problem hiding this comment.
Pull request overview
This PR appears to merge a release branch into main, updating dependencies/tooling, expanding support for additional Prodigy meter variants (Pocket/VOICE) using the existing Prodigy HID driver, and performing broad documentation cleanup/normalization across the docs/ tree.
Changes:
- Add Prodigy Pocket and Prodigy VOICE as supported HID devices (manifests, driver routing, UI device list, and model tagging).
- Update a large set of runtime/dev dependencies and adjust app/root version strings.
- Normalize and reformat many markdown docs (titles, lists, links), including removing several placeholder guide docs.
Reviewed changes
Copilot reviewed 59 out of 60 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| webpack.config.renderer.dev.babel.mjs | DevServer config tweak (adds allowedHosts). |
| package.json | Version string update + dependency updates/removals. |
| lib/hidDevice.js | Treat Prodigy Pocket/VOICE as “changing report ID” HID devices. |
| lib/drivers/prodigy/autocode.js | Set deviceInfo.model based on Prodigy driverId variants. |
| lib/core/driverManifests.js | Add USB HID manifests for Prodigy Pocket/VOICE. |
| lib/core/device.js | Route Prodigy Pocket/VOICE to existing autocode driver + HID comms. |
| docs/state/StateTreeGlossary.md | Title + formatting/link cleanup (and minor text edits). |
| docs/state/README.md | Add top-level title and update Redux doc link. |
| docs/state/ExampleStateTree.md | Normalize heading/whitespace. |
| docs/state/CustomMiddleware.md | Normalize heading. |
| docs/README.md | Remove legacy docs index page. |
| docs/misc/README.md | Add top-level title. |
| docs/misc/PWDSimulators.md | Add title + update links/list formatting. |
| docs/misc/FlatRateBasals.md | Normalize heading structure. |
| docs/misc/CSSModules.md | Normalize heading structure and spacing. |
| docs/guide/FeatureOverview.md | Remove placeholder “Coming soon” doc. |
| docs/guide/DirectoryStructure.md | Remove placeholder “Coming soon” doc. |
| docs/guide/CodeStyle.md | Remove legacy codes-style pointer doc. |
| docs/guide/Architecture.md | Remove placeholder “Coming soon” doc. |
| docs/checklisttemplates/README.md | Add top-level title + list formatting. |
| docs/checklisttemplates/PumpChecklist.md | Reformat checklist markdown for consistency/readability. |
| docs/checklisttemplates/CGMChecklist.md | Reformat checklist markdown + fix a heading typo. |
| docs/checklisttemplates/BGMChecklist.md | Reformat checklist markdown + rename heading. |
| docs/checklists/trividiaTrueMetrix.md | Add title + normalize checklist formatting. |
| docs/checklists/tandemCGM.md | Normalize checklist formatting. |
| docs/checklists/tandem.md | Normalize checklist formatting + fix relative links to templates. |
| docs/checklists/reliOnPrime.md | Add title + normalize checklist formatting. |
| docs/checklists/reliOnPremier.md | Add title + normalize checklist formatting. |
| docs/checklists/README.md | Add top-level title + normalize device list formatting/links. |
| docs/checklists/prodigyAutocode.md | Add title + normalize checklist formatting. |
| docs/checklists/oneTouchVerioIQ.md | Rename checklist heading + minor spacing cleanup. |
| docs/checklists/oneTouchVerioBLE.md | Add title + normalize checklist formatting. |
| docs/checklists/oneTouchVerio.md | Rename checklist heading + minor spacing cleanup. |
| docs/checklists/oneTouchUltraMini.md | Add title + normalize headings/notes + list formatting. |
| docs/checklists/oneTouchUltra2.md | Add title + normalize checklist formatting. |
| docs/checklists/microTechEquil.md | Add title + normalize checklist formatting. |
| docs/checklists/medtronicCGM.md | Add title + normalize checklist formatting. |
| docs/checklists/medtronic600CGM.md | Add title + normalize checklist formatting. |
| docs/checklists/medtronic600.md | Normalize checklist formatting + fix relative links to templates. |
| docs/checklists/medtronic.md | Normalize checklist formatting + fix relative links to templates. |
| docs/checklists/ketomojo.md | Add title + normalize checklist formatting + list normalization. |
| docs/checklists/insuletOmniPod.md | Normalize checklist formatting + fix relative links to templates. |
| docs/checklists/glucoRx.md | Add title + normalize checklist formatting. |
| docs/checklists/glucocardExpression.md | Add title + normalize checklist formatting. |
| docs/checklists/glucocard.md | Add title + normalize checklist formatting. |
| docs/checklists/dexcom.md | Normalize checklist formatting (lists/indentation) + whitespace cleanup. |
| docs/checklists/careSensUSB.md | Add title + normalize checklist formatting. |
| docs/checklists/caresensNPremierBluetooth.md | Add title + normalize checklist formatting. |
| docs/checklists/bayerContourNext.md | Rename checklist heading + spacing cleanup. |
| docs/checklists/bayerContour.md | Add title + normalize checklist formatting. |
| docs/checklists/avivaConnectAndGuide.md | Add title + normalize checklist formatting. |
| docs/checklists/abbottPrecisionXtra.md | Rename checklist heading + normalize list formatting. |
| docs/checklists/abbottFreeStyleNeo.md | Add title + normalize checklist formatting. |
| docs/checklists/abbottFreeStyleLite.md | Rename checklist heading + normalize list formatting. |
| docs/checklists/abbottFreeStyleLibre.md | Re-structure CGM/BGM checklist sections + normalize lists/headings. |
| docs/BootstrappingToUTC.md | Add title + update links + normalize list/code-fence formatting. |
| app/reducers/devices.js | Add Prodigy Pocket/VOICE entries to the device selection list. |
| app/package.json | Update Electron app version string. |
| app/components/Upload.js | Add support for debug-downloads when upload payload uses postRecords (camelCase). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| }, | ||
|
|
||
| devServer: { | ||
| allowedHosts: 'all', |
| { | ||
| "name": "tidepool-uploader", | ||
| "version": "2.66.0", | ||
| "version": "2.66.0-add-more-prodigy.1", |
| "name": "tidepool-uploader", | ||
| "productName": "tidepool-uploader", | ||
| "version": "2.66.0", | ||
| "version": "2.66.0-add-more-prodigy.1", |
| #### `uploadTargetUser` | ||
|
|
||
| *The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](#-allusers) branch of the state tree) of the PWD currently selected as the target for data upload.* | ||
| *The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](#allusers) branch of the state tree) of the PWD currently selected as the target for data upload.* |
|
@coderabbitai review |
✅ Action performedReview finished.
|
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR adds ProdigyPocket and ProdigyVoice device support across drivers/manifests/reducers, updates upload debug-link JSON handling for postRecords, adds CircleCI release-draft automation, bumps app/package versions and dependencies, sets webpack dev-server allowedHosts, and reformats/restructures numerous markdown documentation and checklist files. ChangesProdigy devices and release draft CI
Estimated code review effort: 3 (Moderate) | ~25 minutes Dependency and build updates
Estimated code review effort: 2 (Simple) | ~10 minutes Documentation restructuring
Estimated code review effort: 2 (Simple) | ~15 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
package.json (1)
121-136: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winSeveral
@babel/plugin-proposal-*packages left on old, now-deprecated versions.While most
@babel/*packages were bumped to7.29.7,plugin-proposal-class-properties,plugin-proposal-export-namespace-from,plugin-proposal-json-strings,plugin-proposal-nullish-coalescing-operator,plugin-proposal-numeric-separator, andplugin-proposal-optional-chainingwere left at older pins. These proposals were finalized into the ECMAScript standard and Babel has officially deprecated them in favor of@babel/plugin-transform-*equivalents (already effectively covered by@babel/preset-env). Consider removing these deprecated packages/plugins entirely rather than keeping them pinned.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@package.json` around lines 121 - 136, The dependency list still includes deprecated proposal plugins, so update the Babel config in package.json by removing the finalized `@babel/plugin-proposal-*` entries such as `plugin-proposal-class-properties`, `plugin-proposal-export-namespace-from`, `plugin-proposal-json-strings`, `plugin-proposal-nullish-coalescing-operator`, `plugin-proposal-numeric-separator`, and `plugin-proposal-optional-chaining`, and rely on the existing `@babel/preset-env`/transform plugins instead. If any of these features are still required explicitly, switch to the corresponding `@babel/plugin-transform-*` packages rather than keeping the proposal versions pinned.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/checklists/README.md`:
- Line 15: Fix the user-facing Markdown labels in the checklist device list by
correcting the GLUCOCARD entry text from GBM to BGM and removing the extra
closing parenthesis from the OneTouch Verio visible labels. Update the affected
bullet items in the checklist README so the displayed names read cleanly while
keeping the links unchanged.
In `@docs/checklisttemplates/CGMChecklist.md`:
- Around line 72-79: The General section in the CGM checklist still refers to
“pump events,” which is a copy/paste artifact and should use CGM-specific
wording instead. Update the bullet text in the checklist template to say “CGM
events” or simply “events” so the terminology matches this template and does not
mislead implementers.
In `@docs/state/StateTreeGlossary.md`:
- Around line 43-47: The glossary entry for updateProfileErrorDismissed
references the wrong state field name. Update the description in
StateTreeGlossary so it points to updateProfileErrorMessage instead of
uploadProfileErrorMessage, keeping the wording aligned with the surrounding
state glossary and the updateProfileErrorDismissed symbol.
- Around line 77-80: Fix the remaining typo in the `uploadTargetUser` glossary
entry by updating the prose text in `StateTreeGlossary.md`; the description
currently says “propery” and should read “property”. Keep the rest of the
`uploadTargetUser` definition unchanged.
---
Nitpick comments:
In `@package.json`:
- Around line 121-136: The dependency list still includes deprecated proposal
plugins, so update the Babel config in package.json by removing the finalized
`@babel/plugin-proposal-*` entries such as `plugin-proposal-class-properties`,
`plugin-proposal-export-namespace-from`, `plugin-proposal-json-strings`,
`plugin-proposal-nullish-coalescing-operator`,
`plugin-proposal-numeric-separator`, and `plugin-proposal-optional-chaining`,
and rely on the existing `@babel/preset-env`/transform plugins instead. If any
of these features are still required explicitly, switch to the corresponding
`@babel/plugin-transform-*` packages rather than keeping the proposal versions
pinned.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 1228610b-3c8b-4806-8c1c-19bcf1513971
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (59)
app/components/Upload.jsapp/package.jsonapp/reducers/devices.jsdocs/BootstrappingToUTC.mddocs/README.mddocs/checklists/README.mddocs/checklists/abbottFreeStyleLibre.mddocs/checklists/abbottFreeStyleLite.mddocs/checklists/abbottFreeStyleNeo.mddocs/checklists/abbottPrecisionXtra.mddocs/checklists/avivaConnectAndGuide.mddocs/checklists/bayerContour.mddocs/checklists/bayerContourNext.mddocs/checklists/careSensUSB.mddocs/checklists/caresensNPremierBluetooth.mddocs/checklists/dexcom.mddocs/checklists/glucoRx.mddocs/checklists/glucocard.mddocs/checklists/glucocardExpression.mddocs/checklists/insuletOmniPod.mddocs/checklists/ketomojo.mddocs/checklists/medtronic.mddocs/checklists/medtronic600.mddocs/checklists/medtronic600CGM.mddocs/checklists/medtronicCGM.mddocs/checklists/microTechEquil.mddocs/checklists/oneTouchUltra2.mddocs/checklists/oneTouchUltraMini.mddocs/checklists/oneTouchVerio.mddocs/checklists/oneTouchVerioBLE.mddocs/checklists/oneTouchVerioIQ.mddocs/checklists/prodigyAutocode.mddocs/checklists/reliOnPremier.mddocs/checklists/reliOnPrime.mddocs/checklists/tandem.mddocs/checklists/tandemCGM.mddocs/checklists/trividiaTrueMetrix.mddocs/checklisttemplates/BGMChecklist.mddocs/checklisttemplates/CGMChecklist.mddocs/checklisttemplates/PumpChecklist.mddocs/checklisttemplates/README.mddocs/guide/Architecture.mddocs/guide/CodeStyle.mddocs/guide/DirectoryStructure.mddocs/guide/FeatureOverview.mddocs/misc/CSSModules.mddocs/misc/FlatRateBasals.mddocs/misc/PWDSimulators.mddocs/misc/README.mddocs/state/CustomMiddleware.mddocs/state/ExampleStateTree.mddocs/state/README.mddocs/state/StateTreeGlossary.mdlib/core/device.jslib/core/driverManifests.jslib/drivers/prodigy/autocode.jslib/hidDevice.jspackage.jsonwebpack.config.renderer.dev.babel.mjs
💤 Files with no reviewable changes (5)
- docs/README.md
- docs/guide/FeatureOverview.md
- docs/guide/Architecture.md
- docs/guide/DirectoryStructure.md
- docs/guide/CodeStyle.md
| * [CareSens N Premier & Dual (BGM)](careSensUSB.md) | ||
| * [CareSens N Premier & Dual over Bluetooth (BGM)](caresensNPremierBluetooth.md) | ||
| * [Dexcom CGM](dexcom.md) | ||
| * [GLUCOCARD Shine, Shine XL, Shine Connex & Shine Express (GBM)](glucocard.md) |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix the visible label typos in the device list.
GBM on Line 15 looks like a typo for BGM, and the OneTouch Verio labels on Lines 25-26 still have an extra ) in the visible text. These are small but user-facing Markdown defects.
Proposed fix
-* [GLUCOCARD Shine, Shine XL, Shine Connex & Shine Express (GBM)](glucocard.md)
+* [GLUCOCARD Shine, Shine XL, Shine Connex & Shine Express (BGM)](glucocard.md)-* [OneTouch Verio, Verio Flex and Verio Reflect (BGM))](oneTouchVerio.md)
-* [OneTouch Verio Flex and Verio Reflect over Bluetooth (BGM))](oneTouchVerio.md)
+* [OneTouch Verio, Verio Flex and Verio Reflect (BGM)](oneTouchVerio.md)
+* [OneTouch Verio Flex and Verio Reflect over Bluetooth (BGM)](oneTouchVerio.md)Also applies to: 25-26
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/checklists/README.md` at line 15, Fix the user-facing Markdown labels in
the checklist device list by correcting the GLUCOCARD entry text from GBM to BGM
and removing the extra closing parenthesis from the OneTouch Verio visible
labels. Update the affected bullet items in the checklist README so the
displayed names read cleanly while keeping the links unchanged.
| ### General | ||
|
|
||
| - [ ] device time is in UTC, with records using UTC timestamps, OR | ||
| - [ ] internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR | ||
| - [ ] ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time | ||
| - [ ] device time is in UTC, with records using UTC timestamps, OR | ||
| - [ ] internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR | ||
| - [ ] ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time | ||
|
|
||
| Device-specific? (Add any device-specific notes/additions here.) | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use CGM wording in the General section.
The pump events phrasing on Lines 74-76 is a copy/paste artifact in the CGM template and will mislead implementers. Please rename it to CGM events or just events.
Proposed fix
-- [ ] internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR
-- [ ] ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time
+- [ ] internal timestamp or persistent log index (across device communication sessions) to order all CGM events (regardless of type), independent of device display time OR
+- [ ] ephemeral log index (does not persist across device communication sessions) to order all CGM events (regardless of type), independent of device display time📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ### General | |
| - [ ] device time is in UTC, with records using UTC timestamps, OR | |
| - [ ] internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR | |
| - [ ] ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time | |
| - [ ] device time is in UTC, with records using UTC timestamps, OR | |
| - [ ] internal timestamp or persistent log index (across device communication sessions) to order all pump events (regardless of type), independent of device display time OR | |
| - [ ] ephemeral log index (does not persist across device communication sessions) to order all pump events (regardless of type), independent of device display time | |
| Device-specific? (Add any device-specific notes/additions here.) | |
| ### General | |
| - [ ] device time is in UTC, with records using UTC timestamps, OR | |
| - [ ] internal timestamp or persistent log index (across device communication sessions) to order all CGM events (regardless of type), independent of device display time OR | |
| - [ ] ephemeral log index (does not persist across device communication sessions) to order all CGM events (regardless of type), independent of device display time | |
| Device-specific? (Add any device-specific notes/additions here.) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/checklisttemplates/CGMChecklist.md` around lines 72 - 79, The General
section in the CGM checklist still refers to “pump events,” which is a
copy/paste artifact and should use CGM-specific wording instead. Update the
bullet text in the checklist template to say “CGM events” or simply “events” so
the terminology matches this template and does not mislead implementers.
| #### `updateProfileErrorDismissed` | ||
|
|
||
| *The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `uploadProfileErrorMessage`. * | ||
| *The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `uploadProfileErrorMessage`.* | ||
|
|
||
| If the user has not dismissed the error or if there has been no error to dismiss, the value of `updateProfileErrorDismissed` is `null`. If the user has dismissed an existing error, the value is `true`. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix the referenced error field name.
updateProfileErrorDismissed should point at updateProfileErrorMessage, not uploadProfileErrorMessage. As written, this entry is inconsistent with the surrounding glossary and a state field that doesn't exist.
🛠️ Proposed fix
-*The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `uploadProfileErrorMessage`.*
+*The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `updateProfileErrorMessage`.*📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #### `updateProfileErrorDismissed` | |
| *The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `uploadProfileErrorMessage`. * | |
| *The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `uploadProfileErrorMessage`.* | |
| If the user has not dismissed the error or if there has been no error to dismiss, the value of `updateProfileErrorDismissed` is `null`. If the user has dismissed an existing error, the value is `true`. | |
| #### `updateProfileErrorDismissed` | |
| *The property `updateProfileErrorDismissed` is a flag indicating whether the user has dismissed the displayed `updateProfileErrorMessage`.* | |
| If the user has not dismissed the error or if there has been no error to dismiss, the value of `updateProfileErrorDismissed` is `null`. If the user has dismissed an existing error, the value is `true`. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/state/StateTreeGlossary.md` around lines 43 - 47, The glossary entry for
updateProfileErrorDismissed references the wrong state field name. Update the
description in StateTreeGlossary so it points to updateProfileErrorMessage
instead of uploadProfileErrorMessage, keeping the wording aligned with the
surrounding state glossary and the updateProfileErrorDismissed symbol.
| #### `uploadTargetUser` | ||
|
|
||
| *The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](#-allusers) branch of the state tree) of the PWD currently selected as the target for data upload.* | ||
| *The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](#allusers) branch of the state tree) of the PWD currently selected as the target for data upload.* | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Correct the remaining typo in uploadTargetUser.
propery should be property here.
✏️ Proposed fix
-*The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](`#allusers`) branch of the state tree) of the PWD currently selected as the target for data upload.*
+*The property `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](`#allusers`) branch of the state tree) of the PWD currently selected as the target for data upload.*📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #### `uploadTargetUser` | |
| *The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](#-allusers) branch of the state tree) of the PWD currently selected as the target for data upload.* | |
| *The propery `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](#allusers) branch of the state tree) of the PWD currently selected as the target for data upload.* | |
| #### `uploadTargetUser` | |
| *The property `uploadTargetUser` encodes the `userId` (for lookup in the [`allUsers`](`#allusers`) branch of the state tree) of the PWD currently selected as the target for data upload.* |
🧰 Tools
🪛 LanguageTool
[grammar] ~79-~79: Ensure spelling is correct
Context: ...etUser. #### uploadTargetUser *The properyuploadTargetUserencodes theuserId`...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/state/StateTreeGlossary.md` around lines 77 - 80, Fix the remaining typo
in the `uploadTargetUser` glossary entry by updating the prose text in
`StateTreeGlossary.md`; the description currently says “propery” and should read
“property”. Keep the rest of the `uploadTargetUser` definition unchanged.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.circleci/create-release-draft.js (1)
19-37: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winNo top-level rejection handling or request timeouts on the GitHub API calls.
The async IIFE has no
.catch(), so failures (network errors, malformed JSON, thrownErrors) surface only as an unhandled promise rejection rather than a clearly logged, intentional failure — relies on Node's default crash-on-unhandled-rejection behavior for the CI job to fail. Thefetchcalls also have no explicit timeout, so a stalled GitHub API request would hang until CircleCI's own job timeout kicks in.🛡️ Proposed fix
-(async () => { +(async () => { const res = await fetch(`${api}?per_page=100`, { headers }); if (!res.ok) throw new Error(`Failed to list releases: ${res.status} ${await res.text()}`); ... console.log(`Created draft release for ${tag}.`); -})(); +})().catch((err) => { + console.error(err.message || err); + process.exit(1); +});🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.circleci/create-release-draft.js around lines 19 - 37, The async IIFE in create-release-draft.js should explicitly handle failures instead of relying on unhandled promise rejections, and the GitHub API requests need a timeout. Add a top-level .catch() to the IIFE so errors from the fetch/json/throw paths are logged clearly and cause a controlled non-zero exit, and wire an AbortController (or equivalent timeout handling) into both fetch calls so stalled requests fail fast rather than hanging the CI job.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.circleci/create-release-draft.js:
- Around line 19-37: The async IIFE in create-release-draft.js should explicitly
handle failures instead of relying on unhandled promise rejections, and the
GitHub API requests need a timeout. Add a top-level .catch() to the IIFE so
errors from the fetch/json/throw paths are logged clearly and cause a controlled
non-zero exit, and wire an AbortController (or equivalent timeout handling) into
both fetch calls so stalled requests fail fast rather than hanging the CI job.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: d25129f7-0823-4555-994e-f300a0405aad
⛔ Files ignored due to path filters (2)
app/yarn.lockis excluded by!**/yarn.lock,!**/*.lockyarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (4)
.circleci/config.yml.circleci/create-release-draft.jsapp/package.jsonpackage.json
|
@krystophv I'll fix these typos in another PR, as I can't just push changes to develop. Is it okay if we merge this one so that main doesn't get too out of sync with develop? |
|
@gniezen yeah, running into the same thing over on |
No description provided.